In [1]:
require 'daru/view'
Out[1]:
In [2]:
Daru::View.plotting_library = :googlecharts
Out[2]:
In [3]:
idx = Daru::Index.new ["Element", "Density", "{ role: \"style\" }" ]
data_rows = [
["Copper", 8.94, "#b87333"],
["Silver", 10.49, "silver"],
["Gold", 19.30, "gold"],
["Platinum", 21.45, "color: #e5e4e2"]
]
df_element_density = Daru::DataFrame.rows(data_rows)
df_element_density.vectors = idx
df_element_density
# removing last column. For annotation need some config.
# refer : https://developers.google.com/chart/interactive/docs/gallery/columnchart
df_element_density.delete_vector "{ role: \"style\" }"
Out[3]:
In [4]:
col_table = Daru::View::Table.new(df_element_density, height: 300, width: 200)
col_table.table
Out[4]:
In [5]:
col_options = {
title: "Density of Precious Metals, in g/cm^3",
width: 600,
height: 400,
bar: {groupWidth: "95%"},
legend: { position: "none" },
type: :column
}
col_chart = Daru::View::Plot.new(col_table.table, col_options)
col_chart.show_in_iruby
Out[5]:
In [6]:
idx = Daru::Index.new ['Genre', 'Fantasy & Sci Fi', 'Romance', 'Mystery/Crime', 'General',
'Western', 'Literature']
data_rows = [
['2010', 10, 24, 20, 32, 18, 5],
['2020', 16, 22, 23, 30, 16, 9],
['2030', 28, 19, 29, 30, 12, 13]
]
df_stacked = Daru::DataFrame.rows(data_rows)
df_stacked.vectors = idx
df_stacked
Out[6]:
In [7]:
col_stacked_table = Daru::View::Table.new(df_stacked, height: 300, width: 700)
col_stacked_table.table
Out[7]:
In [8]:
col_stacked_options = {
width: 600,
height: 400,
legend: { position: 'top', maxLines: 3 },
bar: { groupWidth: '75%' },
isStacked: true,
type: :column
}
col_stacked_chart = Daru::View::Plot.new(col_stacked_table.table, col_stacked_options)
col_stacked_chart.show_in_iruby
Out[8]:
In [9]:
col_stacked_options = {
isStacked: true,
height: 300,
legend: {position: 'top', maxLines: 3},
vAxis: {minValue: 0},
type: :column
}
col_stacked_chart = Daru::View::Plot.new(col_stacked_table.table, col_stacked_options)
col_stacked_chart.show_in_iruby
Out[9]:
In [10]:
col_stacked_options = {
isStacked: 'percent',
height: 400,
legend: {position: 'top', maxLines: 3},
vAxis: {
minValue: 0,
ticks: [0, 0.3, 0.6, 0.9, 1]
},
type: :column
}
col_stacked_chart = Daru::View::Plot.new(col_stacked_table.table, col_stacked_options)
col_stacked_chart.show_in_iruby
Out[10]:
TODO: Material column chart using google_visualr. Refer : https://developers.google.com/chart/interactive/docs/gallery/columnchart
In [11]:
idx = Daru::Index.new ['Galaxy', 'Distance', 'Brightness']
data_rows = [
['Canis Major Dwarf', 8000, 23.3],
['Sagittarius Dwarf', 24000, 4.5],
['Ursa Major II Dwarf', 30000, 14.3],
['Lg. Magellanic Cloud', 50000, 0.9],
['Bootes I', 60000, 13.1]
]
df_dualY = Daru::DataFrame.rows(data_rows)
df_dualY.vectors = idx
df_dualY
Out[11]:
In [12]:
col_dualY_table = Daru::View::Table.new(df_dualY, height: 300, width: 700)
col_dualY_table.table
Out[12]:
In [13]:
col_dualY_options = {
chart: {
title: 'Nearby galaxies',
subtitle: 'distance on the left, brightness on the right'
},
# series: {
# 0: { axis: 'distance' }, # Bind series 0 to an axis named 'distance'.
# 1: { axis: 'brightness' } # Bind series 1 to an axis named 'brightness'.
# },
# axes: {
# y: {
# distance: {label: 'parsecs'}, # Left y-axis.
# brightness: {side: 'right', label: 'apparent magnitude'} # Right y-axis.
# }
# }
type: :column
}
col_dualY_chart = Daru::View::Plot.new(col_dualY_table.table, col_dualY_options)
col_dualY_chart.show_in_iruby
Out[13]:
In [14]:
col_dualY_options = {
width: 900,
# Fixme: below line not working. expecting :
# https://developers.google.com/chart/interactive/docs/gallery/columnchart
# series: {
# 0: {targetAxisIndex: 0},
# 1: {targetAxisIndex: 1}
# },
title: 'Nearby galaxies - distance on the left, brightness on the right',
# vAxes: {
# # Adds titles to each axis.
# 0: {title: 'parsecs'},
# 1: {title: 'apparent magnitude'}
# }
type: :column
}
col_dualY_chart = Daru::View::Plot.new(col_dualY_table.table, col_dualY_options)
col_dualY_chart.show_in_iruby
Out[14]:
In [ ]: